\subsection{Módulo device file}
A continuación mostramos el código del módulo que maneja nuestro \textit{device file}. Sin embargo, deberemos realizar algunos pasos 
antes de poder usar el módulo.\\
Nuestro módulo usará el device file \textit{/dev/probabilidad}. Sin embargo, dicho file no existe, por lo que tendremos que crearlo nosotros. 
Para ello usaremos el comando \textbf{mknod}, como se muestra en el ejemplo que sigue

\begin{verbatimtab}
  sudo mknod /dev/probabilidad c 100 0
  sudo chown root /dev/probabilidad
  sudo chmod 644 /dev/probabilidad
\end{verbatimtab}
El comando mknod crea el device file como un \textit{character device file} (se lee y escribe de a un caracter). Los dos números siguiente son el \textit{major number} y el \textit{minor number} 
respectivamente de nuestro device file. \\
Una vez que tengamos compilado el módulo y lo hayamos insertado, podremos ver su funcionamiento por ejemplo realizando 

\begin{verbatimtab}
  dd if=/dev/probabilidad of=test bs=1024 count=128
\end{verbatimtab}
De esta forma creamos un archivo llamado test con 128 caracteres aleatorios.\\
Si queremos ver la cantidad de veces que se ha leído nuestro device file, hacemos

\begin{verbatimtab}
  cat /proc/probabilidad
\end{verbatimtab}

Y si queremos establecer una nueva semilla para el algorítmo de generación de números aleatorios, hacemos\footnote{Esto lo debemos hacer como usuario root, si no obtendremos un \textit{Permission denied}}
\begin{verbatimtab}
  echo N > /proc/probabilidad
\end{verbatimtab}
Donde N es un número\footnote{Se hizo con un sólo número para no tener que implementar la función atoi en el módulo 
ya que la función de escritura recibe la información en un buffer de char's} entre 0 y 9\\
\\Ahora si, el código del módulo
\begin{scriptsize}
  \verbatimtabinput[8]{../code/char_dev/chardev.c}
\end{scriptsize}